1075B - Taxi drivers and Lyft - CodeForces Solution


implementation sortings *1200

Please click on ads to support us..

Python Code:

n, m = map(int, input().strip().split())
x = list(map(int, input().strip().split()))
taxi = list(map(int, input().strip().split()))

pos = {}
taxnum = 0
for i in range(n + m):
    if taxi[i] == 1:
        pos[taxnum] = i
        taxnum += 1

ans = [0 for i in range(m)]

curr = 0
i = 0
while taxi[i] == 0:
    ans[curr] += 1
    i += 1
    if i >= n + m: break

for j in range(i, n + m):
    if taxi[j] == 1:
        curr += int(j != i)
        continue

    if curr + 1 < len(pos):
        if x[pos[curr + 1]] - x[j] < x[j] - x[pos[curr]]:
            ans[curr + 1] += 1
        else:
            ans[curr] += 1
    else:
        ans[curr] += 1

print(*ans)


Comments

Submit
0 Comments
More Questions

768A - Oath of the Night's Watch
156C - Cipher
545D - Queue
459B - Pashmak and Flowers
1538A - Stone Game
1454C - Sequence Transformation
165B - Burning Midnight Oil
17A - Noldbach problem
1350A - Orac and Factors
1373A - Donut Shops
26A - Almost Prime
1656E - Equal Tree Sums
1656B - Subtract Operation
1656A - Good Pairs
1367A - Short Substrings
87A - Trains
664A - Complicated GCD
1635D - Infinite Set
1462A - Favorite Sequence
1445B - Elimination
1656C - Make Equal With Mod
567A - Lineland Mail
1553A - Digits Sum
1359B - New Theatre Square
766A - Mahmoud and Longest Uncommon Subsequence
701B - Cells Not Under Attack
702A - Maximum Increase
1656D - K-good
1426A - Floor Number
876A - Trip For Meal